iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 2
0
自我挑戰組

有志者,事竟成。系列 第 2

Day2 第六題~第十題

  • 分享至 

  • xImage
  •  

第六題 UVa10473

#include<iostream>
#include<string>
#include<sstream>
#include<algorithm>
using namespace std;

unsigned long long xtod(string number)
{
	unsigned long long ans=0,num;
	for(int i=2;i<number.length();i++)
	{
		if(number[i]>57)
			number[i]-=7;
		ans=ans*16+(number[i]-48);
	}
	return ans;
}

string dtox(int number)
{
	string ans="";
	int num;
	while(number>0)
	{
		num=number%16;
		if(num>=10)
			num+=7;
		ans+=(char)(num+48);
		number/=16;
	}
	reverse(ans.begin(),ans.end());
	return ans;
}

int main()
{
	string number;
	while(cin>>number)
	{
		if(number[0]=='-')
		break;
		stringstream ss;
		ss.str("");
		ss.clear();
		
		if(number[0]=='0'&&number[1]=='x')
		{
			unsigned long long num;
			num=xtod(number);
			cout<<num<<endl;
		}
		else
		{
			int num;
			string Num;
			ss<<number;
			ss>>num;
			Num=dtox(num);
			
			cout<<"0x"<<Num<<endl;
		}
	}
} 

第七題 UVa10499

#include<iostream>
using namespace std;

int main()
{
	long long n;
	while(cin>>n)
	{
		if(n<=0)
		break;
		if(n==1)
			cout<<"0%"<<endl;
		else
			cout<<n*25<<"%"<<endl;
	}
}

第八題 UVa10550

#include<iostream>
using namespace std;

int main()
{
	int a,b,c,d;
	while(cin>>a>>b>>c>>d)
	{
		if(a==0&&b==0&&c==0&&d==0)
		break;
		int degree=120;
		if(a<b)
			degree+=(40+a-b);
		if(a>b)//30 0
			degree+=(a-b);
		if(b<c)
			degree+=(c-b);
		if(b>c)
			degree+=(40-b+c);
		if(c<d)
			degree+=(40+c-d);
		if(c>d)
			degree+=(c-d);
		cout<<degree*9<<endl;
	}
}

第九題 UVa10589

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
	double N,a;
	while(cin>>N>>a)
	{
		if(N==0)
		break;
		double M=0;
		double x,y;
		for(int i=0;i<N;i++)
		{
			cin>>x>>y;
			if( ((x-0)*(x-0)+(y-0)*(y-0))<=(a*a)&&
				((x-0)*(x-0)+(a-y)*(a-y))<=(a*a)&&
				((a-x)*(a-x)+(y-0)*(y-0))<=(a*a)&&
				((a-x)*(a-x)+(a-y)*(a-y))<=(a*a))
				M++;
		 }
		 cout<<fixed<<setprecision(5)<<(double)((M/N)*a*a)<<endl;
	}
}

第十題 UVa10673

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
	int tc;
	cin>>tc;
	while(tc--)
	{
		bool find=false,same;
		long long a,b,x,k;//x=ap+bq
		cin>>x>>k;
		if(x%k==0)
		{
			a=x/k;
			b=x/k;
		}
		else
		{
			a=x/k;
			b=x/k+1;
		}
		int p=k,q=0;
		if(a*p+b*q==x)
			cout<<p<<" "<<q<<endl;
		else
		{
			q=x-a*k;
			p=k-q;
			cout<<p<<" "<<q<<endl;
		}
	}
}

容我廢話一下

我左看右看一直心中難安,只放程式碼(而且還是我以前寫的),這種行為根本不符合我的style。
連解說思為什麼都沒有,我心慌慌,不踏實,感覺自己像是邪惡的偷渡者,只想著要拿到獎牌,然後做出過分的行為。
所以我決定另外一邊完賽後,我要將這裡重新整理過,會解說自己的思路。
而這邊應該在完賽後我應該還是會時不時發文...

說個立志的小故事。
「學習,是自己的事。努力,也是自己的事。」
我相信大家應該普遍都聽過CPE,他考的都是UVa的題目。
以前我都是2題、2題的過,明明實作能力還可以,卻一直無法超越2題的魔咒。
恰逢清華考試需要上機,我花了整整兩個禮拜像個小瘋子一樣的每天在解題。
把在lucky cat上面翻譯的一顆星寫完後,就開始寫一點兩顆星的,然後又跑去NewCode打歷屆上機題。
雖然說最後沒上吧(攤手),當時其實有點灰心,覺得自己兩個禮拜的努力恐怕是丟到海裡餵鯊魚了。
但在三個禮拜後的CPE我卻突然突破了2題,而且衝到4題。
我:???!!!
我還記得當時打出第三題的時候,我的內心就已經興奮到開小花了。
然後看到時間還剩下一小時半,我就著手寫了第四題。當我寫完的時候剩下四十分鐘。
我就呈現興奮到寫不出東西的那種狀況......搞不好我冷靜點可以寫個第五題?
這個小故事告訴了我們,「在這世界上,沒有什麼事情努力後不會有成果。」
而我們只要相信自己,成就自己。


上一篇
Day1 - 前言 + 第一題~第五題
下一篇
Day3 第十一題~第十五題
系列文
有志者,事竟成。19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言